package com.ebupt.migu.music.autoTri.Mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.ebupt.migu.music.autoTri.Entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author xuhongsong
 * @version 1.0
 * @date 2020/7/29 15:54
 */
@Mapper
@DS("mysql_mg")
public interface AutoTouchOffMapper {
   /**
    *  查询的是当天需要发送消息的列表  不存在判断时间是否在区间内 在入库时已做判断
    * @param sendDate
    * @return
    */
   SinggerResource singgerResourceList(String sendDate);

   /**
    * 新增数据
    * @param singgerResource
    * @return
    */
   int   insert(SinggerResource singgerResource);
   /**
    * 批量新增数据
    * @param map
    * @return
    */
   int   insertBatchSinggerResource( Map<String,Object> map);

   /**
    *  修改对应的id的状态码为已完成
    * @param id
    * @return
    */
   int updateStatus(@Param("id") int id,@Param("type")int type);


   /**
    *  查询热点歌手  只能按照名字区分
    * @return
    */
   List<String>  selectSingger();
   /**
    *  新增文件内容对象
    * @param map
    * @return
    */
   int   insertBatchFile( Map<String,Object> map);

   /**
    *  查询正处在进行中的自动触发Id  对应的内容
    * @return
    */
   SendContent selectTac(@Param("tacId") String tacId, @Param("tacMode")int tacMode);

   /**
    *  查询当天创建的文件
    * @param toDay
    * @return
    */
   List<String> TodayFileList( String toDay);

   /**
    *  查询是否有统计文件不存在
    * @return
    */
   List<String> censusFileList();


   /**
    * 跟据发送者昵称查询消息类型详情
    * @param msgNickName
    * @return
    */
   Map<String, Object> queryMsgTypeInfo(String msgNickName);

   /**
    *  统计文件集合
    * @return
    */
   List<String>   countFileNameList();
   /**
    *  查询当天的所有流水文件名
    * @return
    */
   List<String>  fileNameList();

   /**
    *  查询处于有效的策略Id
    * @param tacMode
    * @return
    */
   List<SendContent>   tacIdListByTacMode(int tacMode);


   /**
    *   查询定时任务执行状态
    * @return
    */
   int    executeStatus(Map<String,Object> map);

   /**
    *  是否存在正在发送的  如果存在 返回大于1
    * @param sendDate
    * @return
    */
   int  IsTotal(String sendDate);

   /**
    *  修改日期
    * @return
    */
   int updateSendDate(int dataId);

   /**
    *  根据歌手id 查询歌手名称
    * @param singerId
    * @return
    */
   String getSingerName(String singerId);
   /**
    *  获取版权id 对应的产品id 主要针对的是mv
    * @param dataId
    * @return
    */
   CatalogInfo selectProductId(@Param("dataId") String dataId,@Param("grade")Integer grade);
   /**
    * 新增编目数据
    * @param catalogInfo
    * @return
    */
   int   addCatalogInfo(CatalogInfo catalogInfo);

   /**
    *  发送中创建超过三天的数据剔除 状态改为4
    * @return
    */
   int   deleteSingerStatus(String data);
   /**
    *  编目数据超过三天的数据剔除 直接删除
    * @return
    */
   int deleteCatalogInfoStatus();

   /**
    * 判断文件是否存在
    * @param fileName
    * @return
    */
   int  IshavaFile(String fileName);

   /**
    * 判断是否有处在进行中的策略
    * @return
    */
   int  IsInHand();

   /**
    *  查询30天内的流水文件
    * @param tacId
    * @return
    */
   List<String> fileNameLists(String tacId);

   /**
    * 判断某个字符是否存在敏感词
    * @param sourceName
    * @return
    */
   int selectSourceNameTacful(String sourceName);

   /**
    *   新增push统计数据
    * @param tacId
    * @return
    */
   int insertPushTotal(@Param("cid") String cid,@Param("tacId")String tacId);
   /**
    *   新增push统计数据
    * @param tacId
    * @return
    */
   int IsHaveCid(@Param("cid") String cid,@Param("tacId")String tacId);

   /**
    *  查询处于进行中的策略id
    * @return
    */
    List<String> selectTacId();

   /**
    *  获取发送地址
    * @param tacMode
    * @param tacId
    * @return
    */
   String getSendUrl(@Param("tacMode") Integer tacMode,@Param("tacId") String tacId);

   /**
    *  删除kafka_info中超过10天的数据
    * @return
    */
   int deleteKafkaInfo();

   /**
    *  查询处于有效的关注歌手所有策略Id
    * @return
    */
   List<SendContent> tacIdListByAllTacMode();



}
